﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hausaufgabe1
{
    class Program
    {
        static void Main(string[] args)
        {
            //Datenbank ankoppeln.
            Datenbank datenbank = new Datenbank();
                            
            while (true)
            {
                //Main menu
                Console.WriteLine("[0] Autoren anzeigen");
                Console.WriteLine("[1] Bücher anzeigen");
                Console.WriteLine("[2] Neues Buch anlegen");
                Console.WriteLine("[3] Schließen");
                Console.WriteLine();
                Console.Write("Menünummer: ");

                try
                {
                    int menuNumber = Convert.ToInt32(Console.ReadLine());
                    switch (menuNumber)
                    {
                        case 0:
                            Console.WriteLine();
                            Console.WriteLine("--- Autoren ---");
                            Console.WriteLine("Anzahl Autoren: " + datenbank.AnzahlAutoren);
                            Console.WriteLine();

                            //Alle Autoren ausgeben.
                            foreach (Person person in datenbank.Autoren())
                            {
                                Console.WriteLine(person);
                            }
                            Console.WriteLine();
                            break;
                        case 1:
                            //Attribute.
                            string nachname = "";
                            string vorname = "";

                            Console.WriteLine();
                            Console.WriteLine("--- Bücher ---");
                            Console.WriteLine("Anzahl Bücher: " + datenbank.AnzahlBuecher);
                            Console.WriteLine();
                            
                            //Autor von User erfragen.
                            Console.Write("Autor-Nachname: ");
                            try
                            {
                                nachname = (string)Console.ReadLine();
                            }
                            catch
                            { }
                            Console.Write("Autor-Vorname: ");
                            try
                            {
                                vorname = (string)Console.ReadLine();
                            }
                            catch
                            { }
                            Console.WriteLine();
                            
                            //Autor erstellen.
                            Person p = new Person();
                            p.Nachname = nachname;
                            p.Vorname = vorname;

                            //Alle gefundenen Bücher ausgeben.
                            foreach (Buch buch in datenbank.Buecher(p))
                            {
                                Console.WriteLine(buch);
                            }
                            Console.WriteLine();
                            break;
                        case 2:
                            //Attribute.
                            string titel = "";
                            string verlag = "";
                            int jahr = 0;

                            Console.WriteLine();
                            Console.WriteLine("--- Neues Buch anlegen ---");

                            //Autor von User erfragen.
                            Console.Write("Autor-Nachname: ");
                            nachname = "";
                            try
                            {
                                nachname = (string)Console.ReadLine();
                            }
                            catch { }
                            Console.Write("Autor-Vorname: ");
                            vorname = "";
                            try
                            {
                                vorname = (string)Console.ReadLine();
                            }
                            catch { }
                            //Buch von User erfragen.
                            Console.Write("Buch-Titel: ");
                            titel = "";
                            try
                            {
                                titel = (string)Console.ReadLine();
                            }
                            catch { }
                            Console.Write("Buch-Verlag: ");
                            verlag = "";
                            try
                            {
                                verlag = (string)Console.ReadLine();
                            }
                            catch { }
                            Console.Write("Buch-Jahr: ");
                            jahr = 0;
                            try
                            {
                                jahr = Convert.ToInt32(Console.ReadLine());
                            }
                            catch { }

                            //Buch anlegen. Autor anlegen, falls noch nicht vorhanden.
                            datenbank.BuchAnlegen(nachname, vorname, titel, verlag, jahr);
                            Console.WriteLine();
                            break;
                        case 3:
                            Console.WriteLine();
                            Console.WriteLine("--- Programm wird geschlossen ---");
                            Console.ReadKey();
                            return;
                        default:
                            Console.WriteLine();
                            Console.WriteLine("--- Falsche Auswahl ---");
                            break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Fehler: " + ex.Message);
                }
            }
        }
    }
}
